{"componentChunkName":"component---src-templates-post-js","path":"/blog/bigger-k","webpackCompilationHash":"0f979b9b09e9513b4912","result":{"data":{"site":{"siteMetadata":{"keywords":["blog","ubug","tech blog","技术博客","playground"]}},"mdx":{"fields":{"title":"😋 最大的 K 元素","tips":[],"categories":["algorithm"],"datetime":"2019-08-21 19:54:09","noFooter":false,"description":"Leet-Code 中常见的一个技巧。","plainTextDescription":"Leet-Code 中常见的一个技巧。\n","author":"Ubug","banner":null,"bannerCredit":null,"slug":"/blog/bigger-k","tags":["算法","leet-code"]},"headings":[{"value":"方法一：排序截取","depth":2},{"value":"方法二：部分比较","depth":2},{"value":"方法三：二分选择","depth":2},{"value":"方法四：最小堆","depth":2}],"body":"const _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsx mdx */\n\nconst codeStr_347 = \"var topKFrequent = function ([nums, k]) {\\n  return nums.sort().slice(nums.length - k, nums.length)\\n};\\nreturn topKFrequent;\\n\";\nconst codeStr_347_2 = \"var topKFrequent = function ([nums, k]) {\\n  let maxVal = Infinity\\n  let result = []\\n\\n  while(result.length < k) {\\n    let max = -Infinity\\n    let thisCount = 0\\n    for(let i = 0;i < nums.length;i++) {\\n      if(nums[i] == max) {\\n        max = nums[i]\\n        thisCount++\\n      }\\n      if(nums[i] > max && nums[i] < maxVal) {\\n        max = nums[i]\\n        thisCount = 1\\n      }\\n    }\\n    maxVal = max\\n    for(let i = 0;i < thisCount && result.length < k;i++){\\n      result.push(max)\\n    }\\n  }\\n  return result.slice(0, k)\\n};\\nreturn topKFrequent;\\n\";\nconst codeStr_347_3 = \"\\nvar getMid = function(nums, min, max){\\n  // \\u627E\\u51FA\\u76EE\\u6807\\u4E2D\\u4F4D\\u6570\\u548C\\u4EC5\\u8868\\u610F\\u7684\\u6570\\u90FD\\u53EF\\u4EE5\\n  return min + ((max - min) >> 1)\\n  // var mid = min + ((max - min) >> 1)\\n  // var diff = Infinity\\n  // var ind = -1\\n  // for(let i = 0; i< nums.length;i++) {\\n  //   var di = Math.abs(nums[i] - mid)\\n  //   if(di < diff) {\\n  //     ind = i\\n  //     diff = di\\n  //   }\\n  // }\\n  // return nums[ind]\\n}\\n\\nvar topKFrequent = function ([nums, k]) {\\n  var biggerCount = 0\\n  var len = nums.length\\n\\n  // \\u5148\\u8BA1\\u7B97\\u4E00\\u4E2A\\u4E2D\\u95F4\\u503C\\u4F5C\\u4E3A\\u8D77\\u59CB\\u4E8C\\u5206\\u70B9\\n  var min = Infinity\\n  var max = -Infinity\\n  for(let i = 0; i< len;i++) {\\n    min = Math.min(nums[i], min)\\n    max = Math.max(nums[i], max)\\n  }\\n  var midVal = getMid(nums, min, max)\\n\\n  while(true) {\\n    var count = 0\\n    // \\u7EDF\\u8BA1\\u6574\\u4E2A\\u5E8F\\u5217\\u4E2D\\u5927\\u4E8E\\u73B0\\u5728\\u8FD9\\u4E2A\\u4E2D\\u95F4\\u503C\\u7684\\u6570\\u91CF\\n    for(let i = 0; i< len;i++) {\\n      if(nums[i] >= midVal) count++\\n    }\\n    if(count > k) {\\n      // \\u5927\\u4E8E\\u7684\\u503C\\u6BD4 k \\u591A\\uFF0C\\u4E8C\\u5206\\u70B9\\u5411\\u8F83\\u5927\\u7684\\u4E00\\u534A\\u79FB\\u52A8\\n      var _midVal = getMid(nums, midVal, max)\\n      if(_midVal == midVal){\\n        // \\u8BA1\\u7B97\\u7684\\u5206\\u5272\\u4E2D\\u4F4D\\u6570\\u76F8\\u540C\\uFF0C\\u8BF4\\u660E\\u65E0\\u6CD5\\u8BA1\\u7B97\\u4E2D\\u4F4D\\u503C\\u4E86\\n        biggerCount = count\\n        break;\\n      }\\n      midVal = _midVal\\n    }\\n    if(count < k) {\\n      // \\u5927\\u4E8E\\u7684\\u503C\\u6BD4 k \\u5C11\\uFF0C\\u4E8C\\u5206\\u70B9\\u5411\\u8F83\\u5C0F\\u7684\\u4E00\\u534A\\u79FB\\u52A8\\n      var _midVal = getMid(nums, min, midVal)\\n      if(_midVal == midVal){\\n        // \\u8BA1\\u7B97\\u7684\\u5206\\u5272\\u4E2D\\u4F4D\\u6570\\u76F8\\u540C\\uFF0C\\u8BF4\\u660E\\u65E0\\u6CD5\\u8BA1\\u7B97\\u4E2D\\u4F4D\\u503C\\u4E86\\n        biggerCount = count\\n        break;\\n      }\\n      midVal = _midVal\\n    }\\n    biggerCount = count\\n    if(count == k) {\\n      break;\\n    }\\n\\n  }\\n  // ---------- \\u77E5\\u9053\\u4E86\\u5206\\u5272\\u503C\\n  var resut = []\\n  // ---------- \\u7B49\\u4E8E\\u5206\\u5272\\u503C\\u5F97\\u4E0D\\u80FD\\u5168\\u62FF\\u51FA\\u6765\\n  var midNoNeedCount = biggerCount - k\\n  // ---------- \\u5C06\\u5927\\u4E8E\\u76EE\\u6807\\u503C\\u7684\\uFF0C\\u90E8\\u5206\\u7B49\\u4E8E\\u5206\\u5272\\u503C\\u5F97\\u62FF\\u51FA\\u6765\\n  for(let i = 0; i< len;i++) {\\n    if(nums[i] == midVal && midNoNeedCount-- > 0) continue;\\n    if(nums[i] >= midVal) resut.push(nums[i])\\n  }\\n  return resut\\n};\\nreturn topKFrequent;\\n\";\nconst codeStr_347_4 = \"var findTarget = function(nums, min, max, targetCount){\\n  var mid = min + ((max - min) >> 1)\\n  if(mid == min) return min\\n  if(mid == max) return max\\n  var count = 0\\n  // \\u7EDF\\u8BA1\\u6574\\u4E2A\\u5E8F\\u5217\\u4E2D\\u5927\\u4E8E\\u73B0\\u5728\\u8FD9\\u4E2A\\u4E2D\\u95F4\\u503C\\u7684\\u6570\\u91CF\\n  for(let i = 0; i< nums.length;i++) {\\n    if(nums[i] >= mid) count++\\n  }\\n  if(count == targetCount) {\\n    return mid\\n  }\\n  if(count > targetCount) {\\n    // \\u5927\\u4E8E\\u7684\\u503C\\u6BD4 k \\u591A\\uFF0C\\u4E8C\\u5206\\u70B9\\u5411\\u8F83\\u5927\\u7684\\u4E00\\u534A\\u79FB\\u52A8\\n    return findTarget(nums, mid, max, targetCount)\\n  }\\n  if(count < targetCount) {\\n    // \\u5927\\u4E8E\\u7684\\u503C\\u6BD4 k \\u5C11\\uFF0C\\u4E8C\\u5206\\u70B9\\u5411\\u8F83\\u5C0F\\u7684\\u4E00\\u534A\\u79FB\\u52A8\\n    return findTarget(nums, min, mid, targetCount)\\n  }\\n}\\nvar topKFrequent = function ([nums, k]) {\\n  var len = nums.length\\n\\n  var min = Infinity\\n  var max = -Infinity\\n  for(let i = 0; i< len;i++) {\\n    min = Math.min(nums[i], min)\\n    max = Math.max(nums[i], max)\\n  }\\n  var midVal = findTarget(nums, min, max, k)\\n\\n  // ---------- \\u77E5\\u9053\\u4E86\\u5206\\u5272\\u503C\\n  var resut = []\\n\\n  for(let i = 0; i< len;i++) {\\n    if(nums[i] > midVal) resut.push(nums[i])\\n  }\\n  var left = k - resut.length\\n  for(let i = 0; i< left;i++) {\\n    resut.push(midVal)\\n  }\\n  return resut\\n};\\nreturn topKFrequent;\\n\";\nconst codeStr_347_5 = \"var appendBucket = function(bucket, newVal, size){\\n  bucket.push(null)\\n  for(let i = bucket.length - 1; i >= 0;i--) {\\n    if(i > 0 && bucket[i - 1] < newVal) {\\n      bucket[i] = bucket[i - 1]\\n    } else {\\n      bucket[i] = newVal;\\n      break;\\n    }\\n  }\\n  if(bucket.length > size) bucket.pop()\\n}\\nvar topKFrequent = function ([nums, k]) {\\n  var bucket = []\\n  for(let i = 0; i< nums.length;i++) {\\n    appendBucket(bucket, nums[i], k)\\n  }\\n  return bucket\\n};\\nreturn topKFrequent;\\n\";\nconst codeStr_347_6 = \"var heapifyBucket = function(bucket, i){\\n  var left = 2 * i + 1;\\n  var right = 2 * i + 2;\\n  var small = i;\\n  if(left < bucket.length && bucket[left] < bucket[i]) small = left;\\n  if(right < bucket.length && bucket[right] < bucket[small]) small = right;\\n  if(small != i){\\n    // swap i <-> small\\n    var temp = bucket[i];\\n    bucket[i] = bucket[small];\\n    bucket[small] = temp;\\n    // \\u9012\\u5F52\\n    heapifyBucket(bucket, small);\\n  }\\n}\\nvar topKFrequent = function ([nums, k]) {\\n  var bucket = []\\n  for(let i = 0; i< nums.length;i++) {\\n    if(bucket.length < k) bucket.push(nums[i])\\n    else if(bucket[0] < nums[i]) {\\n      bucket.splice(0, 1, nums[i])\\n      heapifyBucket(bucket, 0)\\n    }\\n  }\\n  return bucket\\n};\\nreturn topKFrequent;\\n\";\nconst _frontmatter = {\n  \"slug\": \"bigger-k\",\n  \"title\": \"😋 最大的 K 元素\",\n  \"date\": \"2019-08-21 19:54:09\",\n  \"author\": \"Ubug\",\n  \"description\": \"Leet-Code 中常见的一个技巧。\",\n  \"categories\": [\"algorithm\"],\n  \"tags\": [\"算法\", \"leet-code\"],\n  \"banner\": \"./banner.jpg\"\n};\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return mdx(\"div\", props);\n};\nconst layoutProps = {\n  codeStr_347,\n  codeStr_347_2,\n  codeStr_347_3,\n  codeStr_347_4,\n  codeStr_347_5,\n  codeStr_347_6,\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  let {\n      components\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"\\u5F88\\u5E38\\u89C1\\u7684\\u4E00\\u4E2A Leet-Code \\u95EE\\u9898\\uFF0C\\u53D6\\u51FA\\u65E0\\u5E8F\\u6570\\u7EC4\\u7684\\u6700\\u5927 K \\u4E2A\\u6570\\uFF0C\\u6BD4\\u5982\\u3010\\u524D-k-\\u4E2A\\u9AD8\\u9891\\u5143\\u7D20\\u3011\\u3010\\u6570\\u7EC4\\u4E2D\\u7684\\u7B2Ck\\u4E2A\\u6700\\u5927\\u5143\\u7D20\\u3011\\u3002\"), mdx(\"p\", null, \"\\u4E0B\\u9762\\u4EE5\\u3010\\u524D-k-\\u4E2A\\u9AD8\\u9891\\u5143\\u7D20\\u3011\\u4E3A\\u4F8B\\u5199\\u4E0B\\u601D\\u8003\\uFF1A\"), mdx(\"h2\", null, \"\\u65B9\\u6CD5\\u4E00\\uFF1A\\u6392\\u5E8F\\u622A\\u53D6\"), mdx(\"p\", null, \"\\u6700\\u5BB9\\u6613\\u60F3\\u5230\\u7684\\u4E00\\u4E2A\\u65B9\\u6CD5\\uFF0C\\u9009\\u6700\\u5927\\u7684\\uFF0C\\u90A3\\u5C31\\u4ECE\\u5927\\u5230\\u5C0F\\u6392\\u5E8F\\u540E\\u622A\\u53D6\\u524D K \\u4E2A\\u5457\\u3002\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 10000,\n    height: 100,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"p\", null, \"\\u8FD9\\u4E2A\\u7B97\\u6CD5\\u7684\\u590D\\u6742\\u5EA6\\u4E3B\\u8981\\u662F\\u6392\\u5E8F\\u90E8\\u5206\\uFF0C\\u5FEB\\u6392\\u7684\\u8BDD\\u5E73\\u5747\\u53EF\\u4EE5\\u6709 O(nlog\", mdx(\"sub\", null, \"2\"), \"n)\\uFF0C\\u52A0\\u4E0A\\u622A\\u53D6\\u90E8\\u5206\\u7684\\u590D\\u6742\\u5EA6 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"O(K)\"), \"\\u3002\\u8FD9\\u6837\\u7684\\u4E00\\u4E2A\\u5904\\u7406\\u65B9\\u5F0F\\u5F88\\u7B80\\u5355\\uFF0C\\u4F46\\u662F\\u76F4\\u89C9\\u4E0A\\u5C31\\u53EF\\u4EE5\\u8BA4\\u4E3A\\u4E0D\\u662F\\u5F88\\u597D\\u7684\\u65B9\\u6CD5\\uFF0C\\u56E0\\u4E3A\\u5927\\u4E8E k \\u503C\\u7684\\u5143\\u7D20\\u4E0D\\u9700\\u8981\\u6BD4\\u8F83\\u6392\\u5E8F\\uFF0C\\u4F8B\\u5982 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"k = 1\"), \" \\u6216\\u8005\\u5F88\\u5C0F\\u7684\\u503C\\u7684\\u60C5\\u51B5\\uFF0C\\u7B97\\u6CD5\\u9700\\u8981\\u5BF9\\u6574\\u4E2A\\u6570\\u7EC4\\u8FDB\\u884C\\u6CA1\\u5FC5\\u8981\\u7684\\u6392\\u5E8F\\u3002\"), mdx(\"p\", null, \"\\u5728\\u6B64\\u8003\\u91CF\\u4E0B\\uFF0C\\u53EF\\u4EE5\\u91C7\\u7528\\u90E8\\u5206\\u6BD4\\u8F83\\u7684\\u65B9\\u6CD5\\u6765\\u5B9E\\u73B0\\u3002\"), mdx(\"h2\", null, \"\\u65B9\\u6CD5\\u4E8C\\uFF1A\\u90E8\\u5206\\u6BD4\\u8F83\"), mdx(\"p\", null, \"\\u5192\\u6CE1\\u6392\\u5E8F\\u6216\\u8005\\u9009\\u62E9\\u6392\\u5E8F\\u7684\\u601D\\u8DEF\\uFF0C\\u53EA\\u8FDB\\u884C\\u6BD4\\u8F83\\u524D K \\u4E2A\\u5927\\u6570\\u5373\\u53EF\\uFF0C\\u590D\\u6742\\u5EA6\\u662F K \\u6B21\\u904D\\u5386\\uFF0C\\u4E5F\\u5C31\\u662F \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"O(nK)\"), \"\\uFF0C\\u4F46\\u662F\\u8FD9\\u4E2A\\u5F53 n >> k \\u7684\\u65F6\\u5019\\u904D\\u5386 k \\u6B21\\u6574\\u4E2A\\u5E8F\\u5217\\u6709\\u70B9\\u4E0D\\u597D\\u3002\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347_2,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 1000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"p\", null, \"O(nK) \\u7684\\u590D\\u6742\\u5EA6\\u4E0E\\u65B9\\u6CD5\\u4E00 O(nlog\", mdx(\"sub\", null, \"2\"), \"n) \\u590D\\u6742\\u5EA6\\u76F8\\u6BD4\\uFF0C\\u5F53 k \\u8F83\\u5C0F\\u7684\\u65F6\\u5019\\u6BD4\\u8F83\\u5360\\u4F18\\uFF0C\\u4E5F\\u5C31\\u662F\\u5728 k < log\", mdx(\"sub\", null, \"2\"), \"n \\u7684\\u65F6\\u5019\\u9009\\u62E9\\u65B9\\u6CD5\\u4E8C\\uFF0C\\u800C\\u4E14\\u4E0D\\u6D89\\u53CA\\u5230\\u6570\\u7EC4\\u5143\\u7D20\\u7684\\u79FB\\u52A8\\u548C\\u8D4B\\u503C\\uFF0C\\u6240\\u4EE5\\u6027\\u80FD\\u76F8\\u6BD4\\u66F4\\u597D\\u4E9B\\u3002\"), mdx(\"h2\", null, \"\\u65B9\\u6CD5\\u4E09\\uFF1A\\u4E8C\\u5206\\u9009\\u62E9\"), mdx(\"p\", null, \"\\u4E8C\\u5206\\u6CD5\\u6280\\u5DE7\\u7684\\u5E94\\u7528\\uFF0C\\u9009\\u62E9\\u4E8C\\u5206\\u70B9\\u5C06\\u6570\\u7EC4\\u5206\\u5272\\uFF0C\\u4F46\\u662F\\u4E0D\\u662F\\u6309\\u7167\\u4E0B\\u6807\\u7684\\u65B9\\u5F0F\\uFF0C\\u800C\\u662F\\u9009\\u62E9\\u503C\\u548C\\u5927\\u5C0F\\u6BD4\\u8F83\\u7684\\u5206\\u5272\\uFF0C\\u540C\\u65F6\\u4E5F\\u4E0D\\u9700\\u8981\\u771F\\u5B9E\\u7684\\u5207\\u5206\\u6570\\u7EC4\\uFF0C\\u53EA\\u9700\\u8981\\u7EDF\\u8BA1\\u6570\\u91CF\\u5373\\u53EF\\uFF0C\\u6BD4\\u5982\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"// [4,1,2,5,3,8,6,7,9], 2\\n// \\u4E8C\\u5206\\u70B9\\u4E3A\\u4E2D\\u4F4D\\u6570\\n\\n// 1,9 -> 5\\n// [4,1,2,3] [5,6,7,9]\\n// \\u53F3\\u4FA7\\u4E0D\\u5C0F\\u4E8E 5 \\u7684\\u6709 4 \\u4E2A\\uFF0C\\u5DE6\\u8FB9\\u754C\\u5411\\u53F3\\u79FB\\u52A8\\n\\n// 5,9 -> 7\\n// [5,6] [7,9]\\n// \\u53F3\\u4FA7\\u4E0D\\u5C0F\\u4E8E 7 \\u7684\\u6709 2 \\u4E2A\\uFF0C\\u6EE1\\u8DB3 k == 2 \\u7684\\u6761\\u4EF6\\n\\n// \\u5373\\u53EF\\u786E\\u8BA4\\u6700\\u5927\\u7684 k \\u4E2A\\u5143\\u7D20\\u4E3A\\u4E0D\\u5C0F\\u4E8E 7 \\u7684\\u6570\\n\")), mdx(\"p\", null, \"\\u8FD9\\u79CD\\u65B9\\u6CD5\\u5C31\\u662F\\u5229\\u7528\\u4E8C\\u5206\\u65B9\\u6CD5\\u903C\\u8FD1\\u76EE\\u6807\\u503C\\uFF0C\\u7136\\u540E\\u5F97\\u5230\\u5206\\u5272\\u70B9\\u3002\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347_3,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 1000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"p\", null, \"\\u8FD9\\u4E2A\\u65B9\\u6CD5\\u867D\\u7136\\u6BD4\\u8F83\\u5947\\u602A\\uFF0C\\u4F46\\u662F\\u590D\\u6742\\u5EA6\\u4E0A\\u81F3\\u5C11\\u6BD4\\u65B9\\u6CD5\\u4E8C\\u8981\\u597D\\u4E00\\u4E9B\\uFF0C\\u800C\\u4E14\\u4E0D\\u9700\\u8981\\u4FEE\\u6539\\u539F\\u6570\\u7EC4\\uFF0C\\u7A7A\\u95F4\\u590D\\u6742\\u5EA6\\u8F83\\u5C0F\\uFF0C\\u800C\\u4E14\\u662F\\u5728 k \\u6BD4\\u8F83\\u5927\\u7684\\u65F6\\u5019\\u6BD4\\u4E0A\\u4E24\\u4E2A\\u597D\\u4E9B\\uFF0C\\u590D\\u6742\\u5EA6\\u53EF\\u4EE5\\u770B\\u505A\\u662F\\u6700\\u5927\\u6700\\u5C0F\\u503C\\u4E8C\\u5206\\u903C\\u8FD1\\u7B2C k \\u5927\\u7684\\u6570\\uFF0C\\u5E73\\u5747\\u4E3A O(nlog\", mdx(\"sub\", null, \"2\"), \"k)\\uFF0C\\u4E0D\\u8FC7\\u56E0\\u4E3A\\u4E8C\\u5206\\u6CD5\\u6700\\u574F\\u53EF\\u80FD\\u662F O(nk\", mdx(\"sup\", null, \"2\"), \")\\u3002\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"PS: \\u4ECE\\u4E0A\\u9762\\u7684\\u8FD0\\u884C\\u4EE3\\u7801\\u4E2D\\u4E5F\\u80FD\\u770B\\u5230\\u7B2C\\u4E00\\u4E2A\\u4F8B\\u5B50\\u65F6\\u95F4\\u6BD4\\u65B9\\u6CD5\\u4E8C\\u8981\\u591A\\uFF0C\\u4F46\\u662F\\u540E\\u9762\\u7684\\u4F8B\\u5B50\\u7684\\u65F6\\u95F4\\u66F4\\u5C11\\u4E9B\\uFF0C\\u56E0\\u4E3A\\u7B2C\\u4E00\\u4E2A\\u573A\\u666F\\u4E0A\\u51FA\\u73B0\\u4E86\\u6700\\u574F\\u7684\\u60C5\\u51B5\\u3002\")), mdx(\"p\", null, \"\\u8FD9\\u4E2A\\u65B9\\u6CD5\\u5982\\u679C\\u7528\\u9012\\u5F52\\u66F4\\u597D\\u7406\\u89E3\\uFF0C\\u590D\\u6742\\u5EA6\\u4E0A\\u53EA\\u662F\\u628A\\u8FED\\u4EE3\\u6362\\u6210\\u4E86\\u9012\\u5F52\\uFF1A\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347_4,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 1000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"h2\", null, \"\\u65B9\\u6CD5\\u56DB\\uFF1A\\u6700\\u5C0F\\u5806\"), mdx(\"p\", null, \"\\u60F3\\u8C61\\u62FF\\u7740\\u4E00\\u4E2A\\u7B50\\u53BB\\u8349\\u8393\\u56ED\\u81EA\\u52A9\\u91C7\\u6458\\uFF0C\\u7B50\\u91CC\\u6700\\u591A\\u88C5 k \\u4E2A\\u8349\\u8393\\uFF0C\\u603B\\u5934\\u5230\\u5C3E\\u4E0D\\u56DE\\u5934\\u7684\\u91C7\\u6458\\uFF0C\\u521A\\u5F00\\u59CB\\u5148\\u628A\\u7B50\\u88C5\\u6EE1\\uFF0C\\u7136\\u540E\\u540E\\u9762\\u6BCF\\u9047\\u5230\\u4E00\\u4E2A\\u6BD4\\u7B50\\u91CC\\u90FD\\u5C0F\\u7684\\uFF0C\\u5C31\\u628A\\u7B50\\u91CC\\u6700\\u5C0F\\u7684\\u6084\\u6478\\u7684\\u5403\\u4E86\\uFF0C\\u628A\\u65B0\\u7684\\u88C5\\u8FDB\\u7B50\\u91CC\\uFF0C\\u5230\\u6700\\u540E\\u80AF\\u5B9A\\u662F\\u80FD\\u62FF\\u5230\\u5168\\u90E8\\u8349\\u8393\\u7684\\u6700\\u5927\\u7684 K \\u4E2A\\u3002\\uFF08\\u5982\\u679C\\u662F\\u771F\\u4E8B\\u7684\\u8BDD\\uFF0C\\u8349\\u8393\\u4E5F\\u5168\\u7ED9\\u4EBA\\u5BB6\\u5403\\u5B8C\\u4E86\\uFF09\\u3002\"), mdx(\"p\", null, \"\\u8FD9\\u6837\\u7684\\u4E00\\u4E2A\\u5F88\\u597D\\u7684\\u573A\\u666F\\u662F\\u53EA\\u9700\\u8981\\u904D\\u5386\\u4E00\\u6B21\\u5168\\u6570\\u7EC4\\u5C31\\u5B8C\\u6210\\u4E86\\uFF0C\\u5728 n \\u5F88\\u5927\\uFF0Ck \\u76F8\\u5BF9\\u8F83\\u5C0F\\u7684\\u65F6\\u5019\\u66F4\\u597D\\u4E9B\\u3002\"), mdx(\"p\", null, \"\\u5177\\u4F53\\u5B9E\\u73B0\\u5C31\\u662F\\uFF1A\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347_5,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 1000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"p\", null, \"\\u590D\\u6742\\u5EA6\\u4E3B\\u8981\\u662F\\u4E3B\\u5FAA\\u73AF\\u91CC\\u9762 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"appendBucket\"), \" \\u7684\\u590D\\u6742\\u5EA6\\uFF0C\\u800C\\u4E14\\u662F\\u5411 k \\u5927\\u5C0F\\u7684\\u5DF2\\u6392\\u5E8F\\u5E8F\\u5217\\u4E2D\\u63D2\\u5165\\u4E00\\u4E2A\\u503C\\uFF0C\\u590D\\u6742\\u5EA6\\u662F\\u6B63\\u5E38\\u6392\\u5E8F\\u53BB\\u9664 n\\uFF0C\\u4E5F\\u5C31\\u662F\\u5806\\u6392\\u5E8F\\u3001\\u5FEB\\u901F\\u6392\\u5E8F\\u3001\\u5F52\\u5E76\\u6392\\u5E8F\\u7B49\\u7684\\u601D\\u8DEF\\uFF0C\\u53EF\\u4EE5\\u7B97\\u662F O(log\", mdx(\"sub\", null, \"2\"), \"K)\\uFF0C\\u6240\\u4EE5\\u603B\\u7684\\u590D\\u6742\\u5EA6\\u662F O(nlog\", mdx(\"sub\", null, \"2\"), \"K)\\u3002\\u4F18\\u70B9\\u662F\\u4EC5\\u9700\\u8981\\u5168\\u90E8\\u5143\\u7D20\\u7684\\u4E00\\u6B21\\u904D\\u5386\\u3002\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"PS\\uFF1A\\u4E0A\\u9762\\u7684\\u4EE3\\u7801\\u4E3A\\u4E86\\u8868\\u793A\\u600E\\u4E48\\u627E\\u5230\\u6700\\u5C0F\\u503C\\u7684\\u63D2\\u5165\\u6392\\u5E8F\\u7684\\u601D\\u8DEF\\uFF0C\\u6700\\u540E\\u590D\\u6742\\u5EA6\\u662F O(nK)\\uFF0C\\u5982\\u679C\\u628A \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"appendBucket\"), \" \\u6362\\u6210\\u6700\\u5C0F\\u5806\\u505A\\u5C31\\u80FD\\u505A\\u5230 O(log\", mdx(\"sub\", null, \"2\"), \"K)\")), mdx(\"p\", null, \"\\u6700\\u5C0F\\u5806\\u7684\\u65B9\\u6CD5\\u662F\\u4E00\\u4E2A\\u66F4\\u597D\\u7684\\u63D2\\u5165\\u65B0\\u6570\\u636E\\u7684\\u65B9\\u5F0F\\uFF0C\\u56E0\\u4E3A\\u4E0D\\u9700\\u8981\\u904D\\u5386\\u90A3\\u4E48\\u591A\\u5143\\u7D20\\uFF0C\\u5E73\\u5747\\u590D\\u6742\\u5EA6\\u66F4\\u597D\\u4E9B\\uFF08\\u4F46\\u662F\\u5B58\\u5728\\u6700\\u574F\\u60C5\\u51B5\\uFF09\\uFF1A\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347_6,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 1000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"isCreatedByStatefulCreatePages":false,"id":"4d20154a-7beb-5e1e-919e-109f5d3212b8","prev":{"fileAbsolutePath":"D:/ubug/storybook/content/blog/leet-code/two-pointers.md","id":"cde50943-277c-50d3-8fec-e85dd49933c4","parent":{"name":"two-pointers","sourceInstanceName":"blog"},"excerpt":"1. TwoPointers 双指针 双指针在算法中很常见的一个处理技巧，当然并不是说双指针是一个固定的银弹，只是很多的算法中会使用到两个指针来实现一个更好的算法复杂度。 一般在业务中，如果性能要求没那么变态的场景，基本上一个指针遍历，不行就两个循环，总能解决一般业务。 但是在大数据比如一个超大的数组，遍历一遍的代价已经很大了，能一遍解决最好，所以双指针可能在算法复杂度上更优。 这篇文章也是意识到这样一个方法比较好，目前还并不能总结出一个特别明显的模式，毕竟每个算法的需求不同。…","fields":{"title":"😜 算法双指针","slug":"/blog/two-pointers","description":"算法中又一个比较常见的双指针方法，这篇文章来思考下那些场景用的比较多。","date":"2019-08-25","redirects":null,"datetime":"2019-08-25 21:34:51","categories":["algorithm"],"series":null,"tags":["算法","技巧"],"status":"online"},"frontmatter":{"published":null,"tags":["算法","技巧"],"theme":null,"slug":"two-pointers","date":"2019-08-25 21:34:51"},"body":"const _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsx mdx */\n\nconst codeStr_977 = \"/**\\n * @param {number[]} A\\n * @return {number[]}\\n */\\nvar sortedSquares_m1 = function(A) {\\n  return A.map(v => Math.pow(v, 2)).sort((a,b)=>a-b);\\n};\\n// \\u53CC\\u6307\\u9488\\uFF0C\\u539F\\u5730\\u6392\\u5E8F\\uFF0C\\u590D\\u6742\\u5EA6\\u5F88\\u9AD8\\nvar sortedSquares_m2 = function (A) {\\n  // \\u521D\\u59CB\\u5316\\u9996\\u5C3E\\u6307\\u9488\\n  for (let pStart = 0, pEnd = A.length - 1; ;) {\\n    // \\u6307\\u9488\\u91CD\\u5408\\u7684\\u65F6\\u5019\\uFF0C\\u7ED3\\u675F\\u5E76\\u628A\\u6700\\u540E\\u7684\\u503C\\u653E\\u5230\\u7ED3\\u679C\\u6570\\u7EC4\\n    if (pStart === pEnd) {\\n      A[pStart] = A[pStart] * A[pStart];\\n      break;\\n    }\\n    // \\u8BA1\\u7B97\\u9996\\u5C3E\\u503C\\n    const endVal = A[pEnd] * A[pEnd];\\n    const startVal = A[pStart] * A[pStart];\\n    // \\u8F83\\u5927\\u7684\\u503C\\u653E\\u5165\\u6392\\u5E8F\\uFF0C\\u5BF9\\u5E94\\u7684\\u6307\\u9488\\u5411\\u4E2D\\u95F4\\u79FB\\u52A8\\n    if (endVal > startVal) {\\n      // \\u539F\\u5730\\u8D4B\\u503C\\uFF0C\\u5C3E\\u6307\\u9488\\u76F4\\u63A5\\u8D4B\\u503C\\n      A[pEnd] = endVal;\\n    } else {\\n      // \\u5C06\\u5F00\\u59CB\\u6307\\u9488\\u5BF9\\u5E94\\u7684\\u503C\\uFF0C\\u63D2\\u5165\\u5230\\u540E\\u6307\\u9488\\u4F4D\\u7F6E(\\u7C7B\\u4F3C\\u63D2\\u5165\\u6392\\u5E8F)\\n      // \\u987A\\u5E8F\\u5C06 pstart-pend \\u7684\\u503C\\u524D\\u79FB\\n      for(let mov = pStart;mov<pEnd;mov++){\\n         A[mov] =  A[mov+1]\\n      }\\n      A[pEnd] = startVal;\\n    }\\n    pEnd--;\\n  }\\n  return A;\\n};\\n// \\u53CC\\u6307\\u9488\\uFF0C\\u989D\\u5916\\u6570\\u7EC4\\nvar sortedSquares = function (A) {\\n  // \\u53CC\\u6307\\u9488\\u6392\\u5E8F\\n  const B = [];\\n  // \\u521D\\u59CB\\u5316\\u9996\\u5C3E\\u6307\\u9488\\n  for (let pStart = 0, pEnd = A.length - 1; ;) {\\n    // \\u6307\\u9488\\u91CD\\u5408\\u7684\\u65F6\\u5019\\uFF0C\\u7ED3\\u675F\\u5E76\\u628A\\u6700\\u540E\\u7684\\u503C\\u653E\\u5230\\u7ED3\\u679C\\u6570\\u7EC4\\n    if (pStart === pEnd) {\\n      B.unshift(A[pStart] * A[pStart]);\\n      break;\\n    }\\n    // \\u8BA1\\u7B97\\u9996\\u5C3E\\u503C\\n    const endVal = A[pEnd] * A[pEnd];\\n    const startVal = A[pStart] * A[pStart];\\n    // \\u8F83\\u5927\\u7684\\u503C\\u653E\\u5165\\u6392\\u5E8F\\uFF0C\\u5BF9\\u5E94\\u7684\\u6307\\u9488\\u5411\\u4E2D\\u95F4\\u79FB\\u52A8\\n    if (endVal > startVal) {\\n      B.unshift(endVal);\\n      pEnd--;\\n    } else {\\n      B.unshift(startVal);\\n      pStart++;\\n    }\\n  }\\n  return B;\\n};\\nreturn sortedSquares;\";\nconst codeStr_905 = \"/**\\n * @param {number[]} A\\n * @return {number[]}\\n */\\nvar sortArrayByParity_m1 = function(A) {\\n  let retAry = [];\\n  A.map(r => {\\n    if(r%2 > 0) {\\n      retAry.push(r);\\n    } else {\\n      retAry.unshift(r);\\n    }\\n  })\\n  return retAry;\\n};\\nvar sortArrayByParity = function(A) {\\n  // \\u9996\\u5C3E\\u6307\\u9488\\u5411\\u4E2D\\u95F4\\u79FB\\u52A8\\n  for(let pStart = 0, pEnd = A.length - 1;;){\\n    // \\u6307\\u9488\\u76F8\\u9047\\u4F5C\\u4E3A\\u505C\\u6B62\\u6761\\u4EF6\\n    if(pStart >= pEnd) break;\\n    let startIsEven = A[pStart] % 2 === 0\\n    let endIsEven = A[pEnd] % 2 === 0\\n    // \\u5982\\u679C\\u9996\\u5C3E\\u6307\\u5411\\u7684\\u6570\\u90FD\\u4E0D\\u5BF9\\uFF0C\\u4EA4\\u6362\\n    if(!startIsEven && endIsEven) {\\n      let tmp = A[pStart]\\n      A[pStart] = A[pEnd]\\n      A[pEnd] = tmp\\n      pStart++\\n      pEnd--\\n    } else {\\n      // \\u5982\\u679C\\u4EC5\\u6709\\u5F00\\u59CB\\u5BF9\\uFF0C\\u6216\\u8005\\u7ED3\\u5C3E\\u5BF9\\uFF0C\\u4EC5\\u79FB\\u52A8\\u5BF9\\u5E94\\u4F4D\\u7F6E\\n      // \\u9519\\u8BEF\\u7684\\u6307\\u5411\\u7B49\\u5F85\\u5F00\\u59CB\\u7684\\n      if(startIsEven) {\\n        pStart++\\n      }\\n      if(!endIsEven) {\\n        pEnd--\\n      }\\n    }\\n  }\\n  return A\\n};\\nreturn sortArrayByParity;\";\nconst codeStr_832 = \"/**\\n * @param {number[][]} A\\n * @return {number[][]}\\n */\\n// \\u8FD9\\u4E2A\\u662F\\u6700\\u7B80\\u6D01\\u7684 js \\u8BED\\u6CD5\\uFF0C\\u4E00\\u822C\\u4E0D\\u8003\\u8651\\u7B97\\u6CD5\\u7684\\u4E00\\u884C\\u89E3\\u51B3\\uFF08PS: \\u6027\\u80FD\\u66F4\\u597D\\uFF09\\nvar flipAndInvertImage_m1 = function(A) {\\n  return A.map(row => row.reverse().map(n => 1 - n))\\n};\\nvar flipAndInvertImage = function(A) {\\n  // \\u5FAA\\u73AF\\u884C\\n  for(let i = 0;i < A.length;i++) {\\n    // \\u4E2D\\u95F4\\u6807\\u5FD7\\u4F4D\\n    let middle = A[i].length / 2;\\n    // \\u7B2C\\u4E00\\u4F4D\\u5230\\u4E2D\\u95F4\\u5F00\\u59CB\\u5224\\u65AD\\n    for(let j = 0;j < middle;j++){\\n      // \\u524D\\u9762\\u7684\\u4F4D\\u7F6E\\u5BF9\\u5E94\\u7684\\u540E\\u9762\\u4F4D\\u7F6E\\n      let back = A[i].length - j - 1\\n      // \\u5982\\u679C\\u4E24\\u4E2A\\u503C\\u76F8\\u540C\\uFF0C\\u540C\\u65F6\\u8D4B\\u503C\\u53CD\\u8F6C\\uFF08\\u4E0D\\u540C\\u7684\\u8BDD\\u5C31\\u4E0D\\u9700\\u8981\\u5904\\u7406\\uFF09\\n      if(A[i][j] === A[i][back]){\\n        A[i][j] = A[i][back] = 1 - A[i][j];\\n      }\\n    }\\n  }\\n  return A\\n};\\nreturn flipAndInvertImage;\";\nconst _frontmatter = {\n  \"slug\": \"two-pointers\",\n  \"title\": \"😜 算法双指针\",\n  \"date\": \"2019-08-25 21:34:51\",\n  \"author\": \"Ubug\",\n  \"description\": \"算法中又一个比较常见的双指针方法，这篇文章来思考下那些场景用的比较多。\",\n  \"categories\": [\"algorithm\"],\n  \"tags\": [\"算法\", \"技巧\"],\n  \"banner\": \"./banner.jpg\"\n};\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return mdx(\"div\", props);\n};\nconst layoutProps = {\n  codeStr_977,\n  codeStr_905,\n  codeStr_832,\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  let {\n      components\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", null, \"1. TwoPointers \\u53CC\\u6307\\u9488\"), mdx(\"p\", null, \"\\u53CC\\u6307\\u9488\\u5728\\u7B97\\u6CD5\\u4E2D\\u5F88\\u5E38\\u89C1\\u7684\\u4E00\\u4E2A\\u5904\\u7406\\u6280\\u5DE7\\uFF0C\\u5F53\\u7136\\u5E76\\u4E0D\\u662F\\u8BF4\\u53CC\\u6307\\u9488\\u662F\\u4E00\\u4E2A\\u56FA\\u5B9A\\u7684\\u94F6\\u5F39\\uFF0C\\u53EA\\u662F\\u5F88\\u591A\\u7684\\u7B97\\u6CD5\\u4E2D\\u4F1A\\u4F7F\\u7528\\u5230\\u4E24\\u4E2A\\u6307\\u9488\\u6765\\u5B9E\\u73B0\\u4E00\\u4E2A\\u66F4\\u597D\\u7684\\u7B97\\u6CD5\\u590D\\u6742\\u5EA6\\u3002\"), mdx(\"p\", null, \"\\u4E00\\u822C\\u5728\\u4E1A\\u52A1\\u4E2D\\uFF0C\\u5982\\u679C\\u6027\\u80FD\\u8981\\u6C42\\u6CA1\\u90A3\\u4E48\\u53D8\\u6001\\u7684\\u573A\\u666F\\uFF0C\\u57FA\\u672C\\u4E0A\\u4E00\\u4E2A\\u6307\\u9488\\u904D\\u5386\\uFF0C\\u4E0D\\u884C\\u5C31\\u4E24\\u4E2A\\u5FAA\\u73AF\\uFF0C\\u603B\\u80FD\\u89E3\\u51B3\\u4E00\\u822C\\u4E1A\\u52A1\\u3002\"), mdx(\"p\", null, \"\\u4F46\\u662F\\u5728\\u5927\\u6570\\u636E\\u6BD4\\u5982\\u4E00\\u4E2A\\u8D85\\u5927\\u7684\\u6570\\u7EC4\\uFF0C\\u904D\\u5386\\u4E00\\u904D\\u7684\\u4EE3\\u4EF7\\u5DF2\\u7ECF\\u5F88\\u5927\\u4E86\\uFF0C\\u80FD\\u4E00\\u904D\\u89E3\\u51B3\\u6700\\u597D\\uFF0C\\u6240\\u4EE5\\u53CC\\u6307\\u9488\\u53EF\\u80FD\\u5728\\u7B97\\u6CD5\\u590D\\u6742\\u5EA6\\u4E0A\\u66F4\\u4F18\\u3002\"), mdx(\"p\", null, \"\\u8FD9\\u7BC7\\u6587\\u7AE0\\u4E5F\\u662F\\u610F\\u8BC6\\u5230\\u8FD9\\u6837\\u4E00\\u4E2A\\u65B9\\u6CD5\\u6BD4\\u8F83\\u597D\\uFF0C\\u76EE\\u524D\\u8FD8\\u5E76\\u4E0D\\u80FD\\u603B\\u7ED3\\u51FA\\u4E00\\u4E2A\\u7279\\u522B\\u660E\\u663E\\u7684\\u6A21\\u5F0F\\uFF0C\\u6BD5\\u7ADF\\u6BCF\\u4E2A\\u7B97\\u6CD5\\u7684\\u9700\\u6C42\\u4E0D\\u540C\\u3002\"), mdx(\"h2\", null, \"2. \\u5E38\\u89C1\\u7684\\u7B97\\u6CD5\\u573A\\u666F\"), mdx(\"p\", null, \"LeetCode \\u6570\\u7EC4\\u4E2D\\u6709\\u5F88\\u591A\\u7B80\\u5355\\u9898\\u76EE\\u4F7F\\u7528\\u8FD9\\u4E2A\\u65B9\\u6CD5\\uFF0C\\u6240\\u4EE5\\u5E94\\u8BE5\\u6BD4\\u8F83\\u5BB9\\u6613\\u60F3\\u5230\\u3002\"), mdx(\"h3\", null, \"2.1 \\u300A977. \\u6709\\u5E8F\\u6570\\u7EC4\\u7684\\u5E73\\u65B9\\u300B\"), mdx(\"p\", null, \"[\\u7B80\\u5355\\u96BE\\u5EA6 70.7%]\", \" 2019-10-24 16:15:36\"), mdx(\"p\", null, \"\\u7ED9\\u5B9A\\u4E00\\u4E2A\\u6309\\u975E\\u9012\\u51CF\\u987A\\u5E8F\\u6392\\u5E8F\\u7684\\u6574\\u6570\\u6570\\u7EC4 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"A\"), \"\\uFF0C\\u8FD4\\u56DE\\u6BCF\\u4E2A\\u6570\\u5B57\\u7684\\u5E73\\u65B9\\u7EC4\\u6210\\u7684\\u65B0\\u6570\\u7EC4\\uFF0C\\u8981\\u6C42\\u4E5F\\u6309\\u975E\\u9012\\u51CF\\u987A\\u5E8F\\u6392\\u5E8F\\u3002\"), mdx(\"p\", null, \"\\u793A\\u4F8B 1\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"\\u8F93\\u5165\\uFF1A[-4,-1,0,3,10]\\n\\u8F93\\u51FA\\uFF1A[0,1,9,16,100]\\n\")), mdx(\"p\", null, \"\\u793A\\u4F8B 2\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"\\u8F93\\u5165\\uFF1A[-7,-3,2,3,11]\\n\\u8F93\\u51FA\\uFF1A[4,9,9,49,121]\\n\")), mdx(\"p\", null, \"\\u63D0\\u793A\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"1 <= A.length <= 10000\\n-10000 <= A[i] <= 10000\\nA\\xA0\\u5DF2\\u6309\\u975E\\u9012\\u51CF\\u987A\\u5E8F\\u6392\\u5E8F\\u3002\\n\")), mdx(\"h3\", null, \"\\u601D\\u8DEF\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u6700\\u7B80\\u5355\\u7684\\u601D\\u8DEF\\u662F\\u5E73\\u65B9\\u540E\\u6392\\u5E8F\\uFF0C\\u6216\\u8005\\u53D6\\u6B63\\u4E4B\\u540E\\u6392\\u5E8F\\u7136\\u540E\\u5E73\\u65B9\\uFF0C\\u4F46\\u662F\\u5F88\\u660E\\u663E\\u7684\\u4E5F\\u5C31\\u4E0D\\u662F\\u9898\\u76EE\\u60F3\\u8981\\u5B9E\\u73B0\\u7684\\u7B97\\u6CD5\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u9898\\u76EE\\u672C\\u8EAB\\u7684\\u7279\\u70B9\\u662F\\u539F\\u6570\\u7EC4\\u5DF2\\u7ECF\\u6392\\u5217\\u4E86\\uFF0C\\u9700\\u8981\\u5E73\\u65B9\\u4E4B\\u540E\\u518D\\u6392\\uFF0C\\u5E73\\u65B9\\u540E\\u7684\\u5E8F\\u5217\\u80AF\\u5B9A\\u662F\\u4E24\\u8FB9\\u5927\\u4E2D\\u95F4\\u5C0F\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u6240\\u4EE5\\u4E00\\u4E2A\\u6BD4\\u8F83\\u597D\\u7684\\u601D\\u8DEF\\u662F\\u4E24\\u8FB9\\u6BD4\\u5927\\u5C0F\\uFF0C\\u5411\\u4E2D\\u95F4\\u9760\\u62E2\\u7684\\u8FC7\\u7A0B\\u4E2D\\u6392\\u5E8F\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u8FD9\\u4E5F\\u662F\\u7B97\\u6CD5\\u4E2D\\u6BD4\\u8F83\\u5E38\\u89C1\\u7684\\u53CC\\u6307\\u9488\\u65B9\\u6CD5\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u6B65\\u9AA4\\u662F\\u4E24\\u5934\\u6307\\u9488\\uFF0C\\u7136\\u540E\\u6307\\u9488\\u6570\\u503C\\u6BD4\\u5927\\u5C0F\\uFF0C\\u8F83\\u5927\\u7684\\u786E\\u5B9A\\uFF0C\\u8F83\\u5C0F\\u503C\\u7684\\u6307\\u9488\\u7684\\u4E0E\\u4E0B\\u4E00\\u4E2A\\u6307\\u9488\\u6BD4\\u503C\\u7684\\u5927\\u5C0F\\uFF0C\\u4EE5\\u6B64\\u9012\\u5F52\\uFF1B\")), mdx(\"h3\", null, \"\\u4EE3\\u7801\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_977,\n    inputs: [[-4, -1, 0, 3, 10], [-2], [-4, -3, -3, -2, 0], [-7, -3, 2, 3, 11]],\n    inputStrs: ['[-4,-1,0,3,10]', '[-2]', '[-4,-3,-3,-2,0]', '[-7,-3,2,3,11]'],\n    times: 10000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"h3\", null, \"2.2 \\u300A905. \\u6309\\u5947\\u5076\\u6392\\u5E8F\\u6570\\u7EC4\\u300B\"), mdx(\"p\", null, \"[\\u7B80\\u5355\\u96BE\\u5EA6 67.8%]\", \" 2019-10-28 19:32:30\"), mdx(\"p\", null, \"\\u7ED9\\u5B9A\\u4E00\\u4E2A\\u975E\\u8D1F\\u6574\\u6570\\u6570\\u7EC4 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"A\"), \"\\uFF0C\\u8FD4\\u56DE\\u4E00\\u4E2A\\u6570\\u7EC4\\uFF0C\\u5728\\u8BE5\\u6570\\u7EC4\\u4E2D\\uFF0C\\xA0\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"A\"), \" \\u7684\\u6240\\u6709\\u5076\\u6570\\u5143\\u7D20\\u4E4B\\u540E\\u8DDF\\u7740\\u6240\\u6709\\u5947\\u6570\\u5143\\u7D20\\u3002\"), mdx(\"p\", null, \"\\u4F60\\u53EF\\u4EE5\\u8FD4\\u56DE\\u6EE1\\u8DB3\\u6B64\\u6761\\u4EF6\\u7684\\u4EFB\\u4F55\\u6570\\u7EC4\\u4F5C\\u4E3A\\u7B54\\u6848\\u3002\"), mdx(\"p\", null, \"\\u793A\\u4F8B\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"\\u8F93\\u5165\\uFF1A[3,1,2,4]\\n\\u8F93\\u51FA\\uFF1A[2,4,3,1]\\n\\u8F93\\u51FA [4,2,3,1]\\uFF0C[2,4,1,3] \\u548C [4,2,1,3] \\u4E5F\\u4F1A\\u88AB\\u63A5\\u53D7\\u3002\\n\")), mdx(\"p\", null, \"\\u63D0\\u793A\\uFF1A\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"1 <= A.length <= 5000\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"0 <= A[i] <= 5000\"))), mdx(\"h3\", null, \"\\u601D\\u8DEF\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u5206\\u79BB\\u6570\\u636E\\uFF0C\\u4E0D\\u8981\\u6C42\\u6392\\u5E8F\\uFF0C\\u5C06\\u6570\\u5B57\\u653E\\u5230\\u4E24\\u7AEF\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u5F88\\u5BB9\\u6613\\u60F3\\u5230\\u7528\\u9996\\u5C3E\\u6307\\u9488\\uFF0C\\u5224\\u65AD\\u5947\\u5076\\u7136\\u540E\\u79FB\\u52A8\\u6307\\u9488\\u7684\\u503C\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u7B97\\u6CD5\\u786E\\u5B9E\\u662F\\u6709\\u65B9\\u6CD5\\u7684\\uFF0C\\u5982\\u679C\\u4E0D\\u4E86\\u89E3\\u53CC\\u6307\\u9488\\u7684\\u65B9\\u6CD5\\uFF0C\\u53EF\\u80FD\\u4F1A\\u82B1\\u70B9\\u65F6\\u95F4\\uFF1B\")), mdx(\"h3\", null, \"\\u4EE3\\u7801\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_905,\n    inputs: [[3, 1, 2, 4], [1, 2], [4]],\n    inputStrs: ['[3,1,2,4]', '[1,2]', '[4]'],\n    times: 10000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"h3\", null, \"2.3 \\u300A832. \\u7FFB\\u8F6C\\u56FE\\u50CF\\u300B\\u4E5F\\u7B97\\u662F\"), mdx(\"p\", null, \"[\\u7B80\\u5355\\u96BE\\u5EA6 73.0%]\", \" 2019-10-23 17:55:51\"), mdx(\"p\", null, \"\\u7ED9\\u5B9A\\u4E00\\u4E2A\\u4E8C\\u8FDB\\u5236\\u77E9\\u9635\\xA0A\\uFF0C\\u6211\\u4EEC\\u60F3\\u5148\\u6C34\\u5E73\\u7FFB\\u8F6C\\u56FE\\u50CF\\uFF0C\\u7136\\u540E\\u53CD\\u8F6C\\u56FE\\u50CF\\u5E76\\u8FD4\\u56DE\\u7ED3\\u679C\\u3002\"), mdx(\"p\", null, \"\\u6C34\\u5E73\\u7FFB\\u8F6C\\u56FE\\u7247\\u5C31\\u662F\\u5C06\\u56FE\\u7247\\u7684\\u6BCF\\u4E00\\u884C\\u90FD\\u8FDB\\u884C\\u7FFB\\u8F6C\\uFF0C\\u5373\\u9006\\u5E8F\\u3002\\u4F8B\\u5982\\uFF0C\\u6C34\\u5E73\\u7FFB\\u8F6C\\xA0\", \"[1, 1, 0]\", \"\\xA0\\u7684\\u7ED3\\u679C\\u662F\\xA0\", \"[0, 1, 1]\", \"\\u3002\"), mdx(\"p\", null, \"\\u53CD\\u8F6C\\u56FE\\u7247\\u7684\\u610F\\u601D\\u662F\\u56FE\\u7247\\u4E2D\\u7684\\xA00\\xA0\\u5168\\u90E8\\u88AB\\xA01\\xA0\\u66FF\\u6362\\uFF0C\\xA01\\xA0\\u5168\\u90E8\\u88AB\\xA00\\xA0\\u66FF\\u6362\\u3002\\u4F8B\\u5982\\uFF0C\\u53CD\\u8F6C\\xA0\", \"[0, 1, 1]\", \"\\xA0\\u7684\\u7ED3\\u679C\\u662F\\xA0\", \"[1, 0, 0]\", \"\\u3002\"), mdx(\"p\", null, \"\\u793A\\u4F8B 1:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"\\u8F93\\u5165: [[1,1,0],[1,0,1],[0,0,0]]\\n\\u8F93\\u51FA: [[1,0,0],[0,1,0],[1,1,1]]\\n\\u89E3\\u91CA: \\u9996\\u5148\\u7FFB\\u8F6C\\u6BCF\\u4E00\\u884C: [[0,1,1],[1,0,1],[0,0,0]]\\uFF1B\\n    \\u7136\\u540E\\u53CD\\u8F6C\\u56FE\\u7247: [[1,0,0],[0,1,0],[1,1,1]]\\n\")), mdx(\"p\", null, \"\\u793A\\u4F8B 2:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"\\u8F93\\u5165: [[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]]\\n\\u8F93\\u51FA: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]\\n\\u89E3\\u91CA: \\u9996\\u5148\\u7FFB\\u8F6C\\u6BCF\\u4E00\\u884C: [[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]]\\uFF1B\\n    \\u7136\\u540E\\u53CD\\u8F6C\\u56FE\\u7247: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]\\n\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u8BF4\\u660E:\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"1 <= A.length = A[0].length <= 20\\n0 <= A[i][j]\\xA0<=\\xA01\\n\")), mdx(\"h3\", null, \"\\u601D\\u8DEF\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u9898\\u76EE\\u5F88\\u7B80\\u5355\\uFF0C\\u4E3B\\u8981\\u770B\\u6548\\u7387\\u4E86\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u6570\\u7EC4\\u9006\\u5E8F\\u7684\\u65B9\\u6CD5\\u4E0D\\u4F7F\\u7528\\u81EA\\u5E26\\u7684\\u6570\\u7EC4\\u65B9\\u6CD5\\uFF0C\\u76F4\\u63A5\\u5FAA\\u73AF\\u5C31\\u53EF\\u4EE5\\uFF0C\\u4E0D\\u8FC7\\u53EF\\u4EE5\\u5728\\u539F\\u6570\\u7EC4\\u4E0A\\u8D4B\\u503C\\u8282\\u7701\\u7A7A\\u95F4\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"1/0 \\u4E92\\u6362\\uFF0C\\u6BD4\\u8F83\\u5BB9\\u6613\\u60F3\\u5230\\u7528 1 \\u51CF\\u6765\\u5B9E\\u73B0\\uFF0C\\u8FD8\\u6709\\u4E00\\u4E2A\\u5F02\\u6216\\u8FD0\\u7B97 \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"1 ^ 1 = 0; 1 ^ 0 = 1;\"), \"\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u4E00\\u884C\\u4E2D\\u534A\\u884C\\u5FAA\\u73AF\\u5373\\u53EF\\u7FFB\\u8F6C\\u4E00\\u884C\\uFF0C\\u7FFB\\u8F6C\\u7684\\u65F6\\u5019\\u540C\\u65F6\\u53CD\\u8F6C\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u7FFB\\u8F6C\\u7684\\u65F6\\u5019\\uFF0C\\u5982\\u679C\\u524D\\u540E\\u5BF9\\u5E94\\u7684\\u4E24\\u4E2A\\u6570\\u5B57\\u4E0D\\u540C\\uFF0C\\u6B63\\u597D\\u662F\\u53CD\\u8F6C\\u7684\\u60C5\\u51B5\\uFF0C\\u4E0D\\u7528\\u8D4B\\u503C\\uFF1B\\u6570\\u5B57\\u76F8\\u540C\\uFF0C\\u540C\\u65F6\\u53CD\\u8F6C\\u5373\\u53EF\\uFF1B\")), mdx(\"h3\", null, \"\\u4EE3\\u7801\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_832,\n    inputs: [[[1, 1, 0], [1, 0, 1], [0, 0, 0]], [[1, 1, 0, 0], [1, 0, 0, 1], [0, 1, 1, 1], [1, 0, 1, 0]]],\n    inputStrs: ['[[1,1,0],[1,0,1],[0,0,0]]', '[[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]]'],\n    times: 10000,\n    output: result => \"[\".concat(result.map(row => row.map(num => num).join(',')).join('],['), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;"},"next":{"fileAbsolutePath":"D:/ubug/storybook/content/blog/worst-debug/worst-debug.md","id":"d307ef63-3c14-5316-8266-9ca8976cb97f","parent":{"name":"worst-debug","sourceInstanceName":"blog"},"excerpt":"想分享的是一次哭笑不得的 debug 寻找记~，不是最傻的一次调试精力，但是找到问题最想摔键盘的一次，必须复盘下~~ 记录一次最失败的 debug 过程。 国庆 7 天长假回家归来后就遇到很多烦心事，好不容易来到心爱的工位前，打开电源，擦拭键盘，打开项目，启动开发环境....  飘红了~~  大意是找不到某个支持库，放到我现在马后炮就是两下鼠标的问题，当时却是一场疯狂的 debug 过程。现在总结下来犯了很多不应该的错误： 一、 问题复盘…","fields":{"title":"🐛 记录一次最失败的 debug 过程","slug":"/blog/worst-debug","description":"出现 bug 非常正常，但是 Debug 的过程中切忌浮躁、自以为是、胡乱猜测，其实你以为的并不对，反而让你一次一次的忽视简单的问题线索。","date":"2019-08-13","redirects":null,"datetime":"2019-08-13 12:04:51","categories":["code"],"series":null,"tags":["思考","调试"],"status":"online"},"frontmatter":{"published":null,"tags":["思考","调试"],"theme":null,"slug":"worst-debug","date":"2019-08-13 12:04:51"},"body":"const _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsx mdx */\n\nconst _frontmatter = {\n  \"slug\": \"worst-debug\",\n  \"title\": \"🐛 记录一次最失败的 debug 过程\",\n  \"date\": \"2019-08-13 12:04:51\",\n  \"author\": \"Ubug\",\n  \"description\": \"出现 bug 非常正常，但是 Debug 的过程中切忌浮躁、自以为是、胡乱猜测，其实你以为的并不对，反而让你一次一次的忽视简单的问题线索。\",\n  \"categories\": [\"code\"],\n  \"tags\": [\"思考\", \"调试\"],\n  \"banner\": \"./banner.jpg\"\n};\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return mdx(\"div\", props);\n};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  let {\n      components\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"hr\", null), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u60F3\\u5206\\u4EAB\\u7684\\u662F\\u4E00\\u6B21\\u54ED\\u7B11\\u4E0D\\u5F97\\u7684 debug \\u5BFB\\u627E\\u8BB0~\\uFF0C\\u4E0D\\u662F\\u6700\\u50BB\\u7684\\u4E00\\u6B21\\u8C03\\u8BD5\\u7CBE\\u529B\\uFF0C\\u4F46\\u662F\\u627E\\u5230\\u95EE\\u9898\\u6700\\u60F3\\u6454\\u952E\\u76D8\\u7684\\u4E00\\u6B21\\uFF0C\\u5FC5\\u987B\\u590D\\u76D8\\u4E0B~~\")), mdx(\"hr\", null), mdx(\"p\", null, \"\\u8BB0\\u5F55\\u4E00\\u6B21\\u6700\\u5931\\u8D25\\u7684 debug \\u8FC7\\u7A0B\\u3002\"), mdx(\"p\", null, \"\\u56FD\\u5E86 7 \\u5929\\u957F\\u5047\\u56DE\\u5BB6\\u5F52\\u6765\\u540E\\u5C31\\u9047\\u5230\\u5F88\\u591A\\u70E6\\u5FC3\\u4E8B\\uFF0C\\u597D\\u4E0D\\u5BB9\\u6613\\u6765\\u5230\\u5FC3\\u7231\\u7684\\u5DE5\\u4F4D\\u524D\\uFF0C\\u6253\\u5F00\\u7535\\u6E90\\uFF0C\\u64E6\\u62ED\\u952E\\u76D8\\uFF0C\\u6253\\u5F00\\u9879\\u76EE\\uFF0C\\u542F\\u52A8\\u5F00\\u53D1\\u73AF\\u5883....\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \" \\u98D8\\u7EA2\\u4E86~~ \")), mdx(\"p\", null, \"\\u5927\\u610F\\u662F\\u627E\\u4E0D\\u5230\\u67D0\\u4E2A\\u652F\\u6301\\u5E93\\uFF0C\\u653E\\u5230\\u6211\\u73B0\\u5728\\u9A6C\\u540E\\u70AE\\u5C31\\u662F\\u4E24\\u4E0B\\u9F20\\u6807\\u7684\\u95EE\\u9898\\uFF0C\\u5F53\\u65F6\\u5374\\u662F\\u4E00\\u573A\\u75AF\\u72C2\\u7684 debug \\u8FC7\\u7A0B\\u3002\\u73B0\\u5728\\u603B\\u7ED3\\u4E0B\\u6765\\u72AF\\u4E86\\u5F88\\u591A\\u4E0D\\u5E94\\u8BE5\\u7684\\u9519\\u8BEF\\uFF1A\"), mdx(\"h2\", null, \"\\u4E00\\u3001 \\u95EE\\u9898\\u590D\\u76D8\"), mdx(\"h3\", null, \"1. \\u53CD\\u590D\\u81EA\\u4EE5\\u4E3A\\u662F\\u7684\\u7591\\u95EE\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u4E0D\\u5E94\\u8BE5\\u554A\\uFF0C\\u4E4B\\u524D\\u8FD8\\u597D\\u597D\\u7684\\uFF0C\\u6CA1\\u52A8\\u554A~~~\")), mdx(\"p\", null, \"  \\u786E\\u5B9E\\u4EE3\\u7801\\u5728\\u8282\\u524D\\u662F\\u6CA1\\u95EE\\u9898\\u7684\\uFF0C\\u91CD\\u542F\\u540E\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u5F88\\u81EA\\u7136\\u7684\\u4F1A\\u8FD9\\u4E48\\u60F3\\u3002\"), mdx(\"p\", null, \"  \\u4F46\\u662F\\u5B9E\\u9645\\u4E0A\\u5E76\\u4E0D\\u662F\\u5168\\u90E8\\u9519\\u8BEF\\u90FD\\u662F\\u4EE3\\u7801\\u7684\\u95EE\\u9898\\uFF0C\\u4E00\\u4E2A\\u9879\\u76EE\\u5F00\\u53D1\\u8C03\\u8BD5\\u8FC7\\u7A0B\\u4E2D\\u4F9D\\u8D56\\u4E86\\u5F88\\u591A sdk\\u3001\\u672C\\u5730\\u73AF\\u5883\\u7B49\\uFF0C\\u5F88\\u591A\\u90FD\\u662F\\u6709\\u7248\\u672C\\u8981\\u6C42\\uFF0C\\u6BD4\\u5982\\u5355\\u5355\\u5F00\\u53D1 flutter \\u5C31\\u6D89\\u53CA\\u5230 Flutter SDK\\u3001Dart SDK\\u3001Shell\\u3001AS \\u7248\\u672C\\u8981\\u6C42\\u7B49\\uFF0C\\u8FD8\\u5305\\u62EC\\u5B89\\u5353\\u5957\\u4EF6 Android SDK\\u3001support \\u5305\\u3001JDK\\u3001Gradle\\u3001build-tools\\u3001platform-tools\\u7B49\\uFF0C\\u4E00\\u65E6\\u5176\\u4E2D\\u4F9D\\u8D56\\u53D8\\u52A8\\uFF0C\\u53EF\\u80FD\\u662F\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u81EA\\u52A8\\u66F4\\u65B0\\u8BBE\\u7F6E\\uFF0C\\u4E5F\\u53EF\\u80FD\\u662F\\u81EA\\u5DF1\\u624B\\u52A8\\u5347\\u7EA7\\uFF0C\\u5F88\\u5BB9\\u6613\\u5BFC\\u81F4\\u9879\\u76EE\\u8DD1\\u4E0D\\u8D77\\u6765\\u3002\"), mdx(\"p\", null, \"  \\u6240\\u4EE5\\u4EE5\\u540E\\u5982\\u679C\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u6392\\u9664\\u4E86\\u81EA\\u5DF1\\u7F16\\u5199\\u7684\\u4EE3\\u7801\\u95EE\\u9898\\uFF0C\\u4E00\\u5B9A\\u8981\\u60F3\\u60F3\\u662F\\u4E0D\\u662F\\u67D0\\u4E2A\\u4F9D\\u8D56\\u5347\\u7EA7\\u6216\\u8005\\u4FEE\\u6539\\u4E86\\u3002\"), mdx(\"h3\", null, \"2. \\u575A\\u5B9A\\u4E0D\\u79FB\\u7684\\u76F8\\u4FE1\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u6CA1\\u95EE\\u9898\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u70B9\\u51FB\\u98D8\\u7EA2\\u5230\\u6846\\u67B6\\u4EE3\\u7801\\u4E2D\\uFF0C\\u5FC3\\u60F3\\u8FD9\\u5757\\u81EA\\u52A8\\u751F\\u6210\\u7684\\uFF0C\\u4E0D\\u4F1A\\u6709\\u95EE\\u9898\\u7684\\uFF0C\\u5411\\u4E0A\\u627E\\u627E\\u9519\\u8BEF Stack \\u4E5F\\u6CA1\\u4EC0\\u4E48\\u503C\\u5F97\\u770B\\u7684~~~ \\u5230\\u5E95\\u54EA\\u91CC\\u51FA\\u95EE\\u9898\\u4E86\\u554A\\uFF01\\uFF01\")), mdx(\"p\", null, \"  \\u770B\\u5230\\u98D8\\u7EA2\\u7684\\u65F6\\u5019\\uFF0C\\u95EE\\u9898\\u7684\\u5B9A\\u4F4D\\u662F\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u81EA\\u52A8\\u751F\\u6210\\u7684\\u76EE\\u5F55\\u91CC\\uFF0C\\u4E0D\\u77E5\\u9053\\u4E3A\\u5565\\uFF0C\\u8111\\u888B\\u91CC\\u9ED8\\u8BA4\\u8FD9\\u5757\\u662F\\u6CA1\\u95EE\\u9898\\u7684\\uFF08\\u5176\\u5B9E\\u70B9\\u8FDB\\u53BB\\u80FD\\u770B\\u5230\\u51FA\\u9519\\u7684\\u5730\\u65B9\\uFF09\\uFF0C\\u6240\\u4EE5\\u6CA1\\u6709\\u4ECE\\u8FD9\\u5757\\u8BE6\\u7A76\\u3002\\u53CD\\u800C\\u66F4\\u52A0\\u786E\\u4FE1\\u662F\\u81EA\\u5DF1\\u7684\\u73AF\\u5883\\u95EE\\u9898\\u4E86\\u3002\"), mdx(\"p\", null, \"  \\u4ECE\\u8FD9\\u4E5F\\u80FD\\u63A8\\u65AD\\u51FA\\u6765\\uFF0C\\u7528\\u7684\\u4E00\\u4E9B\\u6BD4\\u8F83\\u70ED\\u95E8\\u7684\\u6846\\u67B6\\u3001\\u534F\\u4F5C\\u540C\\u4E8B\\u7684\\u8FD0\\u884C\\u4EE3\\u7801\\uFF0C\\u5176\\u5B9E\\u90FD\\u4F1A\\u6709\\u8FD9\\u4E2A\\u95EE\\u9898\\uFF0C\\u800C\\u5F88\\u591A\\u65F6\\u5019\\u8C03\\u8BD5\\u4E5F\\u9ED8\\u8BA4\\u8FD9\\u4E9B\\u4E1C\\u897F\\u6CA1\\u95EE\\u9898\\uFF0C\\u770B\\u6765\\u4EE5\\u540E\\u8FD8\\u662F\\u9700\\u8981\\u4FDD\\u7559\\u4E00\\u4E9B\\u8B66\\u89C9\\u7684\\u3002\"), mdx(\"h3\", null, \"3. \\u80E1\\u4E71\\u5C1D\\u8BD5\\uFF0C\\u671F\\u5F85\\u83AB\\u540D\\u5176\\u5999\\u7684\\u597D\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u80AF\\u5B9A\\u662F\\u4E4B\\u524D\\u5347\\u7EA7\\u7684\\u95EE\\u9898\\uFF0C\\u6211\\u628A\\u5168\\u90E8\\u4F9D\\u8D56\\u4E5F\\u5347\\u7EA7\\u5230\\u6700\\u65B0\\u7684\\uFF0C\\u80AF\\u5B9A\\u6CA1\\u95EE\\u9898~~~\")), mdx(\"p\", null, \"  \\u5728\\u8BA4\\u4E3A\\u662F\\u81EA\\u5DF1\\u7684\\u73AF\\u5883\\u95EE\\u9898\\u4E4B\\u540E\\uFF0C\\u5728\\u4E0D\\u6E05\\u695A\\u95EE\\u9898\\u7684\\u60C5\\u51B5\\uFF0C\\u5C1D\\u8BD5\\u521B\\u5EFA\\u65B0\\u9879\\u76EE\\u6CA1\\u95EE\\u9898\\uFF0C\\u4E0D\\u540C\\u7684\\u65B0\\u9879\\u76EE\\u5F62\\u5F0F\\u4E5F\\u6CA1\\u95EE\\u9898\\uFF0C\\u7136\\u540E\\u5C31\\u5404\\u79CD\\u5347\\u7EA7\\u5230\\u6700\\u65B0\\u7248\\uFF0C\\u82B1\\u4E86\\u5F88\\u591A\\u65F6\\u95F4\\u6765\\u9A8C\\u8BC1\\u54EA\\u4E2A\\u73AF\\u5883\\u914D\\u7F6E\\u7684\\u95EE\\u9898\\uFF0C\\u6700\\u540E\\u5DEE\\u70B9\\u91CD\\u65B0\\u88C5\\u6574\\u4E2A Android \\u5F00\\u53D1\\u73AF\\u5883\\u3002\"), mdx(\"p\", null, \"  \\u8FD9\\u4E9B\\u90FD\\u662F\\u5728\\u5927\\u6982\\u77E5\\u9053\\u95EE\\u9898\\uFF0C\\u4F46\\u662F\\u4E0D\\u786E\\u5B9A\\uFF0C\\u7136\\u540E\\u80E1\\u4E71\\u5347\\u7EA7\\uFF0C\\u5C1D\\u8BD5\\u4E0D\\u540C\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u671F\\u5F85\\u83AB\\u540D\\u5176\\u5999\\u7684\\u597D\\u3002\\u5C31\\u50CF\\u662F\\u4E0B\\u9762\\u7684\\u6F2B\\u753B\\u4F3C\\u7684\\uFF1A\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/53_run_result-321975062b336c5a79d7a15ca2ebd6d3.gif\",\n    \"alt\": \"运行结果\"\n  })), mdx(\"p\", null, \"  \\u770B\\u8D77\\u6765\\u5F88\\u641E\\u7B11\\uFF0C\\u4F46\\u662F\\u6709\\u65F6\\u5019\\u771F\\u7684\\u662F\\u8FD9\\u6837\\u7684\\u3002\"), mdx(\"h3\", null, \"4. \\u5206\\u4E0D\\u6E05\\u95EE\\u9898\\u8303\\u56F4\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u89E3\\u51B3\\u4E0D\\u4E86\\uFF0C\\u53EA\\u80FD\\u641C\\u7D22\\u4E86~~~\")), mdx(\"p\", null, \"  \\u6280\\u672F\\u6808\\u95EE\\u9898\\u5206\\u4E0D\\u6E05\\uFF0C\\u8FD9\\u4E2A\\u9879\\u76EE\\u662F flutter \\u548C Android \\u6DF7\\u5408\\u7684\\uFF0CAndroid \\u90E8\\u5206\\u662F flutter sdk \\u8D1F\\u8D23\\uFF0C\\u6240\\u4EE5\\u641C\\u7D22\\u95EE\\u9898\\u7684\\u5173\\u952E\\u8BCD\\u4E00\\u76F4\\u60F3\\u7684\\u90FD\\u662F flutter + bug\\uFF0C\\u5176\\u5B9E\\u5E76\\u4E0D\\u662F\\uFF0C\\u5728\\u8FD9\\u5757\\u641C\\u7D22\\u4E0D\\u51FA\\u4EFB\\u4F55\\u6709\\u7528\\u7684\\u4E1C\\u897F\\u3002\"), mdx(\"h3\", null, \"5. \\u6D6E\\u8E81\\u8C03\\u8BD5\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u9879\\u76EE\\u8FD9\\u4E48\\u7740\\u6025\\uFF0C\\u5C45\\u7136\\u8FD8\\u51FA\\u73B0\\u8FD9\\u4E2A\\u95EE\\u9898\\uFF0C\\u73B0\\u5728\\u6709\\u4E00\\u4E2A\\u4E34\\u65F6\\u89E3\\u51B3\\u65B9\\u6848\\uFF0C\\u62F7\\u8D1D\\u5230\\u522B\\u7684\\u9879\\u76EE\\u4E0B\\u53EF\\u4EE5\\u5F00\\u53D1\\uFF0C\\u4F46\\u662F\\u6CA1\\u6CD5\\u534F\\u4F5C\\uFF0C\\u4E0D\\u884C\\u53EA\\u80FD\\u6682\\u65F6\\u5148\\u9876\\u7740\\u4E86~~\")), mdx(\"p\", null, \"  \\u8C03\\u8BD5\\u7684\\u8FC7\\u7A0B\\u4E2D\\uFF0C\\u4E00\\u822C\\u7684\\u5C0F\\u95EE\\u9898\\u4E00\\u4E0B\\u80FD\\u770B\\u51FA\\u6765\\uFF0C\\u4E2D\\u7B49\\u95EE\\u9898\\u4E5F\\u5927\\u6982\\u6709\\u601D\\u8DEF\\uFF0C\\u6700\\u62C5\\u5FC3\\u7684\\u8C03\\u8BD5\\u662F\\u4E0D\\u77E5\\u9053\\u54EA\\u91CC\\u51FA\\u9519\\u4E86\\u7684\\u65F6\\u5019\\uFF0C\\u66F4\\u662F\\u82B1\\u4E86\\u5F88\\u591A\\u65F6\\u95F4\\u90FD\\u6CA1\\u6709\\u4EFB\\u4F55\\u5934\\u7EEA\\uFF0C\\u9879\\u76EE\\u8FDB\\u5EA6\\u803D\\u8BEF\\u5F88\\u591A\\uFF0C\\u5BFC\\u81F4\\u5FC3\\u6D6E\\u6C14\\u8E81\\u3002\"), mdx(\"p\", null, \"  \\u8FD9\\u4E2A\\u65F6\\u5019\\u5FC3\\u91CC\\u5C31\\u504F\\u5411\\u4E8E\\u66F4\\u591A\\u6BD4\\u5982\\u6682\\u65F6\\u53EF\\u7528\\u7684\\u65B9\\u6848\\uFF0C\\u53EF\\u80FD\\u4F1A\\u89E3\\u51B3\\u6682\\u65F6\\u7684\\u95EE\\u9898\\uFF0C\\u4F46\\u662F\\u540E\\u7EED\\u7684\\u5F00\\u53D1\\u80AF\\u5B9A\\u4F1A\\u53D7\\u5230\\u5F71\\u54CD\\u3002\"), mdx(\"h2\", null, \"\\u4E8C\\u3001 \\u66F4\\u597D\\u7684\\u505A\\u6CD5\"), mdx(\"p\", null, \"\\u8C03\\u8BD5 bug \\u5C31\\u50CF\\u662F\\u8C03\\u67E5\\u4E00\\u4E2A\\u6848\\u4EF6\\uFF0C\\u4ECE\\u7EBF\\u7D22\\u5165\\u624B\\uFF0C\\u63A8\\u65AD\\u95EE\\u9898\\u6240\\u5728\\uFF0C\\u800C\\u4E0D\\u662F\\u60F3\\u5F53\\u7136\\u7684\\u8BA4\\u4E3A\\u8C01\\u662F\\u51F6\\u624B\\uFF0C\\u7136\\u540E\\u5211\\u8BAF\\u903C\\u4F9B\\u3002\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u7B2C\\u4E00\\u65F6\\u95F4\\u4ECE\\u6700\\u5F00\\u59CB\\u7684\\u9519\\u8BEF\\u5F00\\u59CB\\u6392\\u67E5\\uFF0C\\u4E0D\\u7528\\u5C4F\\u853D\\u4E0D\\u719F\\u6089\\u7684\\u4EE3\\u7801\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u65E0\\u8BBA\\u662F\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u751F\\u6210\\u3001\\u6846\\u67B6\\u7684\\u4EE3\\u7801\\u8FD8\\u662F\\u81EA\\u5DF1\\u7684\\u4EE3\\u7801\\uFF0C\\u90FD\\u7167\\u67E5\\u4E0D\\u8BEF\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u5728\\u590D\\u6742\\u4F9D\\u8D56\\u7684\\u73AF\\u5883\\u4E0B\\uFF0C\\u4E0D\\u786E\\u5B9A\\u95EE\\u9898\\u7684\\u65F6\\u5019\\u4E0D\\u8981\\u82B1\\u592A\\u591A\\u65F6\\u95F4\\u5C1D\\u8BD5\\u4E0D\\u786E\\u5B9A\\u7684\\u89E3\\u51B3\\u529E\\u6CD5\\u6765\\u80E1\\u4E71\\u5C1D\\u8BD5\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u95EE\\u9898\\u6CA1\\u6709\\u601D\\u8DEF\\u7684\\u65F6\\u5019\\u679C\\u65AD\\u8BF7\\u6C42\\u540C\\u4E8B\\u4ECE\\u4E0D\\u540C\\u89D2\\u5EA6\\u63D0\\u4F9B\\u5EFA\\u8BAE\\uFF0C\\u534F\\u52A9\\u8C03\\u8BD5\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u65E0\\u8BBA\\u82B1\\u591A\\u957F\\u65F6\\u95F4\\uFF0C\\u4FDD\\u6301\\u60C5\\u7EEA\\u7A33\\u5B9A\\uFF0C\\u4E2D\\u65AD\\u4F11\\u606F\\u7B49\\u65B9\\u5F0F\\uFF0C\\u4FDD\\u6301\\u81EA\\u5DF1\\u7684\\u72B6\\u6001\\uFF1B\")), mdx(\"p\", null, mdx(\"figure\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-figure\",\n    \"style\": {}\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1035px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/40551b3e11ff1593a6736d3f0533700c/28bb1/sherlock.jpg\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"62.54826254826254%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBv/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAc/TOwUAf//EABkQAAIDAQAAAAAAAAAAAAAAAAMQAAExE//aAAgBAQABBQKFHzVbq//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAAIDAAAAAAAAAAAAAAAAAAABESAh/9oACAEBAAY/AhbNf//EABoQAQACAwEAAAAAAAAAAAAAAAERMQAQIUH/2gAIAQEAAT8hLw4otJ55qjCw6//aAAwDAQACAAMAAAAQiA//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAwEBPxCn/8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Qh//EABoQAQACAwEAAAAAAAAAAAAAAAERoQAQIXH/2gAIAQEAAT8QAgWCe4hDlKhp1cxxJxl8df/Z')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"来自夏洛克的凝视\",\n    \"title\": \"来自夏洛克的凝视\",\n    \"src\": \"/static/40551b3e11ff1593a6736d3f0533700c/dcf47/sherlock.jpg\",\n    \"srcSet\": [\"/static/40551b3e11ff1593a6736d3f0533700c/fca29/sherlock.jpg 259w\", \"/static/40551b3e11ff1593a6736d3f0533700c/f4507/sherlock.jpg 518w\", \"/static/40551b3e11ff1593a6736d3f0533700c/dcf47/sherlock.jpg 1035w\", \"/static/40551b3e11ff1593a6736d3f0533700c/cd483/sherlock.jpg 1553w\", \"/static/40551b3e11ff1593a6736d3f0533700c/e222b/sherlock.jpg 2070w\", \"/static/40551b3e11ff1593a6736d3f0533700c/28bb1/sherlock.jpg 2560w\"],\n    \"sizes\": \"(max-width: 1035px) 100vw, 1035px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), \"\\n    \", mdx(\"figcaption\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-figcaption\"\n  }, \"\\u6765\\u81EA\\u590F\\u6D1B\\u514B\\u7684\\u51DD\\u89C6\"), \"\\n  \")));\n}\n;\nMDXContent.isMDXComponent = true;"}}}}